#ifndef __studies_architecture_returns__codes__h__
#define __studies_architecture_returns__codes__h__



/** @file */


/** @todo */

// ==> C++ Headers
#include <cstdint>
#include <iostream>

// ==> 3rds Headers

// ==> Our Headers

// ==> Namespaces
using namespace std;

// ==> Macro Constants

// ==> Macro Commands

/** ==> namespace of the organization */
namespace studies {
    /** ==> namespace for the project */
    namespace architecture {
        /** ==> communication, display, interaction, objects, process, returns,
            storage, transmittion */  
        namespace returns {

            // ==> Typedefs 

            // ==> Pre-Declarations

            // ==> Attributes 

            // ==> Functions

            // ==> Classes

            enum struct codes : std::int16_t {
                OK = 0,
                    LOGIN_MALFORMED,                    
                    LOGIN_INEXISTENT,
                    PWD_MALFORMED,
                    PWD_DOES_NOT_MATCH
                    };

            std::ostream& operator<<(std::ostream& p_out, codes p_code) {
                p_out << static_cast<int16_t>(p_code);
            }
        }
    }
}
// =============================================================================
// I M P L E M E N T A T I O N
// =============================================================================

using namespace studies::architecture::returns;


#endif
